package com.liuhouse.service;

import com.liuhouse.dto.AddArticleDto;
import com.liuhouse.pojo.Article;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liuhouse.utils.ResponseResult;
import com.liuhouse.vo.ArticleByIdVo;
import com.liuhouse.vo.PageVo;

/**
 * <p>
 * 文章表 服务类
 * </p>
 *
 * @author liuhouse
 * @since 2024-01-27
 */
public interface IArticleService extends IService<Article> {
    //热门文章列表
    ResponseResult hotArticleList();

    //分类查询文章列表
    ResponseResult articleList(Integer pageNum , Integer pageSize , Long categoryId);

    //根据id查询文章详情
    ResponseResult getArticleDetail(Long id);

    //更新文章的浏览量
    ResponseResult updateViewCount(Long id);

    //新增博客文章
    ResponseResult add(AddArticleDto articleDto);

    /**
     * 分页查询文章列表
     * @param article 文章的条件封装
     * @param pageNum 当前的页码
     * @param pageSize 每页显示的条数
     * @return
     */
    PageVo selectArticlePage(Article article , Integer pageNum , Integer pageSize);

    //修改文章 -> 根据文章Id查询对应的文章信息进行回显
    ArticleByIdVo getInfo(Long id);

    //修改文章-> 然后才是真正的修改文章操作
    void edit(AddArticleDto articleDto);

    //进行文章的删除操作
    void deleteArticleById(Long id);
}
